var path = require('path')

const { override, babelInclude, addWebpackPlugin } = require('customize-cra')
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
const TerserPlugin = require("terser-webpack-plugin");

// module.exports = override(
// 	// 注意是production环境启动该plugin
// 	process.env.NODE_ENV === 'production' && addWebpackPlugin(
//   	new UglifyJsPlugin({
//   		// 开启打包缓存
//   		cache: true,
//   		// 开启多线程打包
//   		parallel: true,
//   		uglifyOptions: {
//   			// 删除警告
//   			warnings: false,
//   			// 压缩
//   			compress: {
//   				// 移除console
//   				drop_console: true,
//   				// 移除debugger
//   				drop_debugger: true
//   			}
//   		}
//   	})
//   )
// )

module.exports = function (config, env) {
  if (process.env.NODE_ENV === 'production') {
    config.devtool = false;
  }
  if (env === 'production') {
    config.optimization = {
      minimize: true,
      minimizer: [new TerserPlugin()],
    };
  }
  return Object.assign(
    config,
    override(
      // 判断环境变量ANALYZER参数的值
      process.env.ANALYZER && addWebpackPlugin(new BundleAnalyzerPlugin()),
      // process.env.NODE_ENV === 'production' && addWebpackPlugin(
      //   new UglifyJsPlugin({
      //     cache: true,
      //     // 开启多线程打包
      //     parallel: true,
      //     uglifyOptions: {
      //       // 删除警告
      //       warnings: false,
      //       // 压缩
      //       compress: {
      //         // 移除console
      //         drop_console: true,
      //         // 移除debugger
      //         drop_debugger: true
      //       }
      //     },
      //   })
      // ),
      babelInclude([
        /* transpile (converting to es5) code in src/ and shared component library */
        path.resolve('src'),
        path.resolve('../../packages'),
      ])
    )(config, env)
  )
}